var mongoose = require('mongoose')

var Schema = mongoose.Schema

// 1.链接数据库  当你插入第一条数据之后就会自动呗创建出来
mongoose.connect('mongodb://localhost:27017/itcast')

// 2.设计集合结构(表结构)
// 约束的目的是为了保证数据的完整性，不要有脏数据

// 约束的目的是为了保证数据的完整性，不要有脏数据
var userSchema = new Schema({
    username: {
        type: String,
        required: true // 必须有
    },
    password: {
        type: String,
        required: true
    },
    email: {
        type: String
    }
})


    // title:  String,
    // author: String,
    // body:   String,
    // comments: [{ body: String, date: Date }],
    // date: { type: Date, default: Date.now },
    // hidden: Boolean,
    // meta: {
    //     votes: Number,
    //     favs:  Number
    // }


// 3.将文档发布为模型
// mongoose.model 方法就是用来将一个架构发布为model
// 第一个参数：传入一个大写名词单数字符串用来表示你的数据库名称
//                            mongoose会自动将大写名词的字符串生成 小写复数  的集合名称
//                            例如这里的User会变成 users集合
// 第二个参数 ： 架构 schema
//    返回值：模型构造函数

var User = mongoose.model('User',userSchema)


// 新增
// 4.当我们有了模型构造函数之后，就可以使用这个构造函数对user集合中的数据为所欲为
// var admin = new User({
//     username: '付仁强',
//     password: '123456',
//     email: 'admin@admin.com'
// })
//
// admin.save(function (err, ret) {
//     if (err) {
//         console.log('保存失败')
//     } else {
//         console.log('保存成功')
//         console.log(ret)
//     }
// })
//


// // 查询
User.find(function (err,ret) {
    if(err){
        console.log('查询失败')
    } else {
        console.log(ret)
    }
})
// // 单个查询   如果没有条件 就查询第一个数据
// User.findOne({
//     username:'付仁强'
// },function (err,ret) {
//     if(err){
//         console.log('查询失败')
//     } else {
//         console.log(ret)
//     }
// })


// 删除
//  单个的话deleteone
// User.deleteMany({
//     username:'付仁强'
// },function (err,ret) {
//     if(err){
//         console.log('找不到数据')
//     } else {
//         console.log('删除成功')
//     }
// })
//


//更新
// User.findOneAndUpdate(' 5c91f24ca6c5072348370a40',{
//     username:'夫妇'
// },function (err,ret) {
//     if(err){
//         console.log('找不到数据')
//     } else {
//         console.log('更改成功')
//     }
//
// })


